// 格式化时间戳
export function formatDate(timestamp, fmt = 'YYYY-MM-DD HH:mm:ss') {
  if (!timestamp) return ''
  const date = new Date(timestamp)
  const obj = {
    'Y+': date.getFullYear(),
    'M+': date.getMonth() + 1,
    'D+': date.getDate(),
    'H+': date.getHours(),
    'm+': date.getMinutes(),
    's+': date.getSeconds()
  }
  for (let k in obj) {
    const reg = new RegExp('(' + k + ')')
    if (reg.test(fmt)) {
      fmt = fmt.replace(reg, (obj[k] + '').padStart(2, '0'))
    }
  }
  return fmt
}

// 格式化数字(保留小数位)
export function formatNumber(value, digits = 2) {
  return Number(value).toFixed(digits)
}

// 格式化文件大小
export function formatSize(value) {
  if (!value) return '0 B'
  const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']
  let index = 0
  let size = value

  while (size >= 1024 && index < units.length - 1) {
    size /= 1024
    index++
  }
  return `${size.toFixed(2)} ${units[index]}`
}

// 格式化金额
export function formatMoney(value, decimal = 2) {
  return Number(value).toLocaleString('zh-CN', {
    minimumFractionDigits: decimal,
    maximumFractionDigits: decimal
  })
}

// 格式化手机号
export function formatPhone(phone) {
  return phone?.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
}